﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class Parts_Login : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //try
        //{

        if (Session["RandomKey"] == null)
        {
            Session["RandomKey"] = Path.GetRandomFileName().Replace(".", "").ToUpper();
        }

        if (Request.Form["txtEmail"] != null && Request.Form["txtPassword"] != null && Request.Form["act"] != null)
        {
            try
            {
                NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();

                string strEmail = Request.Form["txtEmail"];

                var query = from t in db.TaiKhoans
                             where t.TenDangNhap.Trim().ToLower().Equals(strEmail.Trim().ToLower())
                             select t;

                if (query.Count() > 0)
                {
                    lblRegisterMsg.Visible = true;
                    lblRegisterMsg.Text = "Địa chỉ e-mail này đã có người đăng ký!<br/><br/>";
                    return;
                }

                KhachHang kh = new KhachHang();
                kh.TenKhachHang = Request.Form["txtName"];

                TaiKhoan tk = new TaiKhoan();
                tk.TenDangNhap = Request.Form["txtEmail"];
                tk.MatKhau = Request.Form["txtPassword"];
                try
                {
                    tk.NhanThongBao = int.Parse(Request.Form["ct"]);
                }
                catch
                {
                }

                kh.TaiKhoan = tk;

                db.KhachHangs.InsertOnSubmit(kh);
                db.SubmitChanges();

                lblRegisterMsg.Visible = true;
                lblRegisterMsg.Text = "Đã đăng ký thành công. Vui lòng đăng nhập!<br/><br/>";
            }
            catch
            {
                lblRegisterMsg.Visible = true;
                lblRegisterMsg.Text = "Xảy ra lỗi trong quá trình xử lý. Vui lòng thực hiện lại!<br/><br/>";
                return;
            }
        }
        else if (Request.Form["txtUsername"] != null && Request.Form["txtPassword"] != null)
        {
            try
            {
                NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();

                var query = from t in db.TaiKhoans
                            where t.TenDangNhap.Trim().ToLower().Equals(Request.Form["txtUsername"].Trim().ToLower())
                            select t;

                if (query.Count<TaiKhoan>() <= 0)
                {
                    lblLoginMsg.Visible = true;
                    lblLoginMsg.Text = "Tên hoặc mật khẩu không hợp lệ!<br/><br/>";
                    return;
                }

                TaiKhoan tk = query.Single<TaiKhoan>();

                if (tk == null)
                {
                    lblLoginMsg.Visible = true;
                    lblLoginMsg.Text = "Tên hoặc mật khẩu không hợp lệ!<br/><br/>";
                    return;
                }

                string input_pass = Request.Form["txtPassword"];
                if (input_pass.Equals(MD5Hash.GetMd5Hash(tk.MatKhau + Session["RandomKey"])))
                {
                    Session["TaiKhoan"] = tk;

                    if (Session["Redirect"] != null)
                    {
                        Response.Redirect(Session["Redirect"].ToString());
                    }
                    else
                    {
                        Response.Redirect("~/MyAccount.aspx");
                    }
                }
                else
                {
                    lblLoginMsg.Visible = true;
                    lblLoginMsg.Text = "Tên hoặc mật khẩu không hợp lệ!<br/><br/>";
                    return;
                }
            }
            catch
            {
                lblLoginMsg.Visible = true;
                lblLoginMsg.Text = "Xảy ra lỗi trong quá trình xử lý. Vui lòng thực hiện lại!<br/><br/>";
            }
        }
        //}
        //catch 
        //{
        //    lblLoginMsg.Visible = true;
        //    lblLoginMsg.Text = "Xảy ra lỗi trong quá trình xử lý. Vui lòng thực hiện lại!<br/><br/>";
        //}
    }
}